Apparatus and method for transmission collision avoidance

ABSTRACT

A system and method are described for reducing data transmission collisions in a shared transmission medium. In one embodiment, transmission priorities are set by means of priority-defining transmissions. In another embodiment, statistically equal access is assured by means of unique transmit start time slot pairs wherein the paired start time slots are substantially equally spaced in time from a center start time slot. In yet another embodiment, data transmission traffic analysis is used to set unique transmission start time slots or to select from pools of start time slots associated with classes of data to be transmitted, thus establishing relative preemption priorities. In still another embodiment, transmission begins in statically assigned start time slots that are subsets of an available array of transmission start time slots.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to digital wireless communication systems. More particularly, the invention relates to communications transmission medium collision avoidance and preemption control.

2. Background of the Related Art

Extant digital wireless communication systems communicate on a single RF channel, as exemplified by transceivers including access points (APs) and clients (also called, “nodes”) compliant with the IEEE-802.11-1999 standard. Since only one device may make use of the transmission medium (in the instant example, a single RF communication channel) at any one time without destructive interference, a coordinating mechanism for reducing collisions (two entities transmitting contemporaneously) is codified in section 9.2.4 of the above-referenced standard. The fundamental access method of the IEEE 802.11 MAC is a Distributed Coordination Function (DCF) known as carrier sense multiple access with collision avoidance (CSMA/CA). Devices using this access method listen to the communication medium and detect a period of inactivity prior to transmitting.

The approach taught in the standard is to create an array of available transmission start time slots and, upon detecting a transition from a busy state to a clear channel state having the transmitting entities transmit or retransmit beginning in a randomly selected slot selected from the array. If collisions occur multiple times, the array size is doubled until a maximum is reached. The behavior of such a system is described in the standard as stable and fair (providing equal transmission medium access) for heavily loaded systems.

Much growth has occurred in in-home wireless local area networks (WLANs). Such localized systems are unlikely to ever require the relief offered by §9.2.4 of the above-referenced IEEE-802.11 specification. Indeed, the mechanism therein described will impose a modest penalty on such systems by creating an opportunity for inadvertent collision which must, then, be resolved in a manner that decreases throughput.

There are also situations, for example in Voice over IP (VoIP) applications, where a guaranteed bit stream transmission is required that should be afforded an unequal and higher priority than that afforded by the egalitarian technique defined by §9.2.4 of the above-referenced IEEE-802.11 specification.

There is thus a need in the art for a method and system for avoiding wasteful collision resolution in extant wireless data communication systems in a manner that retains the fundamental “fairness” of the intent of §9.2.4 of the above-referenced IEEE-802.11 specification. There is, further, a need to optionally set a priori preemptive transmission priorities, a feature not addressed by the above-referenced IEEE-802.11 specification.

SUMMARY OF THE INVENTION

In view of the above deficiencies of the available art, it is an object of the invention to provide an apparatus and method for avoiding transmission collisions on a shared communication medium (e.g., an RF channel) by allocating a subset of transmission start time slots to cooperatively equipped transceivers.

It is another object of the invention to provide the advantages of fixed transmission start time slots in a manner that permits deterministic preemption by higher priority transceivers.

It is yet another object of the invention to provide the advantages of fixed, transmission time slots in a manner that enforces non-colliding equal access priority to the transmission medium by a plurality of cooperatively equipped transceivers.

The above objects and other advantages are achieved according to a first aspect of the present invention by providing enhanced transceivers, each having an array of pre-assigned transmission start time slots that comprise one or more subsets of available transmission time slots.

According to another aspect of the invention, providing an enhanced access point capable of producing a list of time slots during which each cooperatively equipped client associated with the access point may begin to transmit without encountering interfering transmissions from similarly cooperatively equipped clients. Start time slots are assigned on a first-come, first-served basis.

According to still another aspect of the invention, these objects are achieved by providing a priority value associated with each client. The priority value may be sent to the access point which, in turn, creates a start time slot list that allows transmission of higher-priority traffic earlier than lower priority traffic. Since the presence of a signal in the RF channel signals any other emitter to wait until the channel is clear before transmitting, this has the effect of allowing a higher-priority transmitter to effectively preempt transmission by lower priority stations.

According to another aspect of the invention, these objects are achieved by creating “pools” of transmit start time slots. The “pools” may be pre-assigned or dynamically assigned according to a class of traffic (data) to be transmitted. In this approach, similar traffic may be assigned transmission start time slots from pools of relatively equal priority. Devices may further select start time slots from a plurality of pools according to the class of traffic being handled by a particular transmissible data packet. Pools of slots may also advantageously be assigned to AP traffic and node traffic, thus ensuring no collisions between an AP and its nodes, even when the node count exceeds the number of slots in the node pool. In that case, collisions could only occur between similarly-pooled nodes. A pool of more than one AP slot has the further advantage of mitigating co-channel interference between APs operating in differing basic service sets (BSSs) in physical proximity.

According to yet another aspect of the invention, these objects are achieved by creating start time slot lists for clients that contain both early and late transmit slots. Slots that occur earlier in time will preempt more transmissions and are thus higher in priority than later slots. These transmit start time slots may be distributed equally about a temporal center. By selecting randomly between early (“H” high priority branch) or late (“L” low priority branch) time slots, non-colliding equal priority channel access is achieved.

According to a further aspect of the invention, it is desirable for cooperatively equipped communicating devices to interoperate with devices compliant with existing standards.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other objects, features and advantages of the present invention are better understood by reading the following detailed description of a preferred embodiment, taken in conjunction with the accompanying drawings, in which:

FIG. 1 is a block diagram of a digital communication system showing an access point 120 coupled to a network 110 and communicating with clients 130 and 140;

FIG. 2 is a representation of the array of prior art, standards-compliant time slots for after-collision retransmission 210;

FIG. 3 is a representation of an array of unique, non-colliding time slots suitable for allocation amongst a number of cooperatively equipped clients;

FIG. 4 is a representation of an array of pairs of unique, non-colliding time slots suitable for allocation amongst a number of cooperatively equipped clients that exhibit a temporal center;

FIG. 5 shows a block diagram of a wireless access point according to the instant invention;

FIG. 6 shows a block diagram of a wireless client according to the instant invention;

DETAILED DESCRIPTION OF PRESENTLY PREFERRED EXEMPLARY EMBODIMENTS

FIG. 1 shows an access point 120 connected to a fixed network 110 and connected wirelessly to clients 130 and 140. If access point 120 and clients 130 and 140 are cooperatively equipped devices, optimal benefit will be derived from the instant invention. Each of the wireless devices 120, 130 or 140 can be functional as set forth in the above-referenced IEEE-802.11-1999 standard.

FIG. 2 shows the available combination of randomly-selected transmit start time slots 210 prescribed by §9.2.4 of the above-referenced IEEE-802.11 standard. The standard prescribes the random selection of a slot amongst those in the array described by the equation: “Backoff Time=Random( )×aSlotTime.”

FIG. 3 shows one embodiment of the instant invention wherein an array of transmit start time slots 310, 312, . . . 318 are assigned by an access point in first-come, first-served order. This has the effect of arbitrarily assigning variable transmit priority to clients. In an alternative embodiment, time slot 310 is assigned to the highest-priority transmitter since all other transmitters will be waiting for their later-occurring times to begin to transmit. If slot 310 is used, then all other transmitters will sense activity on the transmit medium and hold off transmitting until their time to transmit occurs and the channel is not active. Priority is established by means of a client reporting a priority value to the access point. In yet another embodiment, priority is established by analysis of communications traffic. In still another embodiment, access points are assigned a first fixed subset of transmit start times and clients are assigned a second fixed subset of transmit start times. In one embodiment, the first and second fixed subsets of transmit start times are disjoint. In other embodiments, the subsets of transmit start times may be adjusted by means of a user interface. In further embodiments, start time slots may be selected from fixed or assigned pools of slots reflecting a priority afforded a class of traffic (e.g., VoIP). In one embodiment, two pools may be created, one pool reserved for AP use, the other for node use. The AP pool may be assigned every even numbered slot and the node pool is assigned every odd numbered slot.

Notably, there may be more nodes than there are node slots in a pool. In this case, collisions are restricted to occurring between nodes and not with an AP.

FIG. 4 shows another preferred embodiment wherein pairs of high (H) and low (L) priority slots are assigned to clients such that each pair of start time slots 420, 430 is substantially equally displaced in time about a center slot 410. In this configuration, a client assigned slot pair 420 is required to randomly select between the H 422 and L 424 branches respectively. A second client would similarly be assigned H and L slot pair 432 and 434.

This configuration has the advantage of assuring equal preemption since channel activity serves to prevent transmission. For any pair of start time slots, the pair whose members are most distant in time from the center slot will have a 50% chance of always winning or always losing to another ready-to-transmit entity. This configuration assures statistically equal access to the shared communications medium.

FIG. 5 is a block diagram of an access point according to the instant invention. A receiver 510 receives signals from transmit/receive switch (T/R) 504 and is coupled to a client request sensor 530. The request sensor 530 is coupled to an association processor 540. In some embodiments the association processor 540 serves the purpose specified in §11.3 of the IEEE-802.11-1999 specification for wireless LANs. An association request is made by a client seeking to open communications with, for example, an access point. The association processor 540 and slot list generator 560 functions may be controlled or modified by controller 550. In some embodiments, controller 550 is expressed as software. The presence of a cooperatively equipped client is communicated to slot list generator 560. The slot list generator 560 can generate a slot list according to any of the first-come, first served, prioritized according to communicated priority, prioritized in response to traffic analyzer 570, selected from a pool of slots associated with a class of transmission or the slot-pair equal preemption method referenced above. In some embodiments, the slot list processor is expressed as software. In some embodiments, the class of transmission is set statically. In other embodiments, traffic analyzer 570 may indicate a class of transmission. The creation of such software is well within the grasp of one skilled in the art to which the present invention pertains.

FIG. 6 shows a block diagram of a client according to the instant invention. A transmitter 620 sends, through transmit/receive switch (T/R) 604 an association request to an access point. In some embodiments the association request to §11.3 of the IEEE-802.11-1999 specification for wireless LANs. The association request may, in one embodiment, carry fixed priority data provided by fixed priority setting 640. Receiver 610 receives a start time slot list which is stored in start time slot table 650. Start time slot table 650 can be addressed by random value generator 660. The output of the start time slot table 650, as indexed by random value generator 660, is coupled to a transmit gate 630 which serves to allow the transmitter to be active only during the start time slot received from table 650.

It is a goal of the instant invention to interoperate with devices that are compliant with existing standards. Such devices expect to operate in an environment defined, by way of example and not limitation, by §9.2.4 of the above-referenced IEEE-802.11-1999 standard. When a collision occurs as a result of legacy operation within a WLAN formed primarily of cooperatively equipped clients and access points, the time slot table may have to be doubled (up to a predefined maximum). In some embodiments, each cooperatively equipped device may expand its existing time slot table by substantially replicating the time slot table, ensuring similar non-colliding interoperation with all but the legacy device. In other embodiments, similarly prioritized pools of slots may be created where the number of slots may be doubled, but each pool may be grown in relative proportion to its original proportion to the total number of original slots. In other embodiments, expansion of an existing time slot table may be performed responsive to a count of sensed clients. In some embodiments, clients may-expand their time slot tables responsive to a command from an AP. In yet other embodiments, cooperatively equipped clients may expand their time slot tables autonomously.

A similar situation can arise if the number of cooperatively equipped transceivers becomes sufficiently large and unique transmission time slot table assignments cannot be made or in the event static time slot allocations are not unique. When a collision occurs, the transmission time slot table is doubled in size (up to a predefined maximum) and the contents of the transmission time slot table are expanded as described, above.

The present invention has been described above in connection with a preferred embodiment thereof; however, this has been done for purposes of illustration only, and the invention is not so limited. Indeed, variations of the invention will be readily apparent to those skilled in the art and also fall within the scope of the invention. 

1. A method of minimizing collisions in a CSMA/CA wireless data communication system having first and second transceivers and an array of available transmit start time slots, including transmitting and receiving data, the method comprising the steps of: allocating a first start time slot list and a second start time slot list, each list comprising at least one time slot further comprising a subset of the available transmit start time slots during which the first and second transceivers may begin to transmit; transmitting from the first transceiver beginning only during the at least one start time slot indicated by the first start time slot list; and transmitting from the second transceiver beginning only during the at least one start time slot indicated by the second start time slot list.
 2. The method of claim 1 wherein the step of allocating further comprises the step of: creating disjoint first and second start time slot lists.
 3. The method of claim 1 or claim 2 wherein the first transceiver is an access point and the second transceiver is a client.
 4. The method of claim 1 wherein the step of allocating further comprises the step of: expanding at least one of the array of available transmit start time slots, the first start time slot list and the second start time slot list responsive to collision detection.
 5. The method of claim 4 wherein the step of expanding comprises the step of: replicating at least one of the array of available transmit start time slots, the first start time slot list and the second start time slot list.
 6. The method of claim 4 wherein the step of expanding comprises the step of: creating a larger start time slot list having proportionately larger pools of start time slots, each pool associated with a class of transmission.
 7. A method of minimizing collisions in a CSMA/CA wireless data communication system having allocated transmit start time slots, including transmitting and receiving data, the method comprising the steps of: sensing the presence of a client desirous of communication with an access point; allocating a start time slot list having at least one unique start time slot during which the client may begin transmitting; transmitting the start time slot list to the client; transmitting from the client to the access point beginning only during the start time slots indicated by the start time slot list.
 8. The method of claim 7 wherein the step of allocating further comprises the step of: expanding the start time slot list responsive to one of the group of collision detection and sensed client count.
 9. The method of claim 8 wherein the step of expanding comprises the step of: replicating the start time slot list.
 10. The method of claim 8 wherein the step of expanding comprises the step of: creating a larger start time slot list having proportionately larger pools of start time slots, each pool associated with a class of transmission.
 11. The method of claim 7, wherein the sensing step comprises the steps of: receiving an association request from a client; acknowledging the association request from a client.
 12. The method of claim 7 wherein the allocating step comprises the steps of: measuring a traffic value for the client; assigning the start time slots based on the traffic value.
 13. The method of claim 7 wherein allocating comprises the step of: assigning, for the client, at least one pair of a high-priority start time slot and a low-priority start time slot substantially equally displaced in time from a center start time slot.
 14. The method of claim 7 wherein allocating comprises the steps of: determining a class of data for transmission; assigning, for the client, the start time slots based on a pool of start time slots associated with the class of data for transmission.
 15. The method of claim 7 wherein allocating comprises the steps of: receiving a priority value from the client; and assigning the allocated transmit time slots based on the priority value.
 16. The method of claims 8, 9, 10, 11, 12, 13, 14 or 15 wherein the step of transmitting from the client comprises the steps of: selecting an entry from the start time slot list based on a randomizing function; transmitting from the client to the access point only during the selected start time slot.
 17. The method of claim 16 wherein selecting an entry from the start time slot list comprises: selecting an entry from the start time slot list based on a randomizing function with a substantially equal likelihood of selection for any element of the start time slot list.
 18. A method of minimizing collisions in a shared data communication medium having allocated transmit start time slots, including transmitting and receiving data, the method comprising the steps of: sensing the presence of a client desirous of communication with an access point; allocating a start time slot list having, for the client, a high-priority time slot and a low-priority time slot substantially equally displaced in time from a center time slot; transmitting the start time slot list to the client; and transmitting from the client to the access point beginning only during the start time slots indicated by the start time slot list.
 19. The method of claim 18 wherein transmitting from the client comprises the steps of: selecting the high-priority start time slot or low-priority start time slot based on a randomizing function; and transmitting from the client to the access point beginning only during the selected start time slot.
 20. A system for minimizing collisions in a CSMA/CA wireless data communication system having allocated transmit start time slots, including an access point and a client, the system comprising a client sensor for detecting the presence of a client desirous of communication with an access point; a start time slot allocator for allocating a start time slot list having at least one unique start time slot during which the client may begin to transmit; an access point transmitter for transmitting the start time slot list to a client receiver; and a client transmitter enabled to begin transmission only during the start time slots indicated by the start time slot list.
 21. The system of claim 20, wherein the client sensor comprises an access point receiver receiving an association request from a client.
 22. The system of claim 20 wherein the time slot allocator comprises: a traffic analyzer generating a traffic value for the client; and a start time slot selector responsive to a traffic value generating a start time slot list having at least one unique start time slot during which the client may begin to transmit.
 23. The system of claim 22 wherein the traffic value comprises: one of the group of a class of data for transmission and a priority value,
 24. The system of claim 20 wherein the start time slot allocator comprises: a start time slot generator generating, for the client, a start time slot list having at least one pair of a high-priority time slot and a low-priority start time slot substantially equally displaced in time from a center start time slot.
 25. The system of claims 22 wherein the client transmitter further comprises: a start time slot selector for choosing an entry from the start time slot list based on a randomizing function; and a transmitter gate permitting the client transmitter to begin operation only during the time associated with the chosen time slot.
 26. The system of claim 20 wherein the start time slot allocator comprises: an access point receiver for receiving a priority value at least one client; and a start time slot selector for choosing at least one entry from the start time slot list based on the priority value.
 27. A system for minimizing collisions in a CSMA/CA shared data communication medium having allocated transmit start time slots, including transmitting and receiving data, the system comprising: a client sensor for detecting the presence of a client desirous of communication with an access point; a start time slot allocator for allocating, for at least one client, a time slot list having a high-priority time slot and a low-priority time slot substantially equally displaced in time from a center time slot; an access point transmitter for transmitting the start time slot list to a client receiver; and a client transmitter enabled to begin transmission only during the start time slots indicated by the start time slot list.
 28. The system of claim 27 wherein the client transmitter further comprises: a start time slot selector for choosing an entry from the start time slot list based on a randomizing function; a transmitter gate permitting the client transmitter to begin transmission only during the time associated with the chosen start time slot.
 29. A system having an access point and at least one client cooperatively minimizing transmission collisions in a CSMA/CA shared communications medium, the system comprising: an access point controller disposed to receive a transmission from a client transmitter and operatively connected to a start time slot allocator, the start time slot allocator generating a start time slot list; an access point transmitter disposed to transmit the start time slot list to the client; a client receiver disposed to receive and store the start time slot list; and a client transmitter disposed to begin transmission only during a start time slot stored in the start time slot list.
 30. The system of claim 29 wherein the transmission from the client transmitter is an association request.
 31. The system of claim 29 wherein the start time slot allocator is further disposed to receive traffic data from a traffic analyzer, the allocator being responsive to the traffic data.
 32. The system of claim 29 wherein the start time slot allocator generates, for at least one start time slot list, at least one pair of a high-priority start time slot and a low-priority start time slot substantially equally displaced in time from a center start time slot.
 33. The system of claim 29 wherein the start time slot list is disposed to receive a randomized selection signal, the randomized selection signal operatively selecting one start time slot from the start time slot list.
 34. The system of claim 33 wherein the randomized selection signal selects start time slots with a substantially equal probability.
 35. The system of claim 29 wherein: the controller is disposed to receive from the access point receiver a fixed priority value, the fixed priority value being operatively coupled to the client transmitter; and the start time slot allocator is disposed to receive, and is responsive to, the fixed priority value.
 36. A system for minimizing transmission collisions in a CSMA/CA wireless data communication network, having first and second transceivers and an array of available transmit start time slots, the system comprising: a first transmit start time slot list having a subset of the available transmit start time slots; a second transmit start time slot list having a subset of the available transmit start time slots; a first transmitter coupled to the first transceiver and responsive to the first transmit start time slot list, wherein the first transmitter begins transmission only during start time slots in the first transmit start time slot list; and a second transmitter coupled to the second transceiver and responsive to the second transmit start time slot list, wherein the second transmitter begins transmission only during start time slots in the second transmit start time slot list.
 37. The system of claim 36 wherein the first and second transmit start time slot lists are disjoint.
 38. The system of claim 36 or 37 wherein the first transceiver is an access point and the second transceiver is a client. 